﻿using StarryEdge.Core.Enums;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StarryEdge.Core.Models.Interact
{
    public class InteractAddressModel<T> : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler? PropertyChanged;
        /// <summary>
        /// 索引
        /// </summary>
        public int Index { get; set; }
        /// <summary>
        /// 标签
        /// </summary>
        public T Label { get; set; }
        /// <summary>
        /// 任务类型
        /// </summary>
        public string TaskType { get; set; }
        /// <summary>
        /// 设备类型
        /// </summary>
        public DeviceTypes DeviceType { get; set; }
        /// <summary>
        /// 设备索引
        /// </summary>
        public int DeviceIndex { get; set; }
        /// <summary>
        /// 结构体标签
        /// </summary>
        public T Address_Struct { get; set; }
        /// <summary>
        /// 结构体长度
        /// </summary>
        public int Struct_Length { get; set; }
        /// <summary>
        /// 服务名
        /// </summary>
        public string ServiceName { get; set; }
        /// <summary>
        /// 额外参数
        /// </summary>
        public string Extra { get; set; }
        /// <summary>
        /// 是否是定时任务
        /// </summary>
        public bool IsScheduledTask { get; set; }
    }
}
